本系列匯集而成的《可觀測性入門指南:Logs、Metrics、Traces 三大實戰應用,用 24個 Lab 鞏固你的 SRE 技能樹》已經上市了!除了更新原有各種 CNCF 專案的工具介紹與 Lab 外,還特別新增了 Grafana Faro 的介紹與 Lab,讓前端專案也能融入可觀測性的生態圈,書本內容適合想廣泛了解各種工具如何達配與使用的工程師們。
如果想要先快速了解可觀測性,可以先參考我在 iThome 鐵人講堂分享的「Observability 101:從零開始了解可觀測性」,25 分鐘的內容能讓你了解可觀測性能幫助我們什麼以及你是否需要。
雖然很早就已經知道指標監控、鏈路追蹤、Grafana 等服務監控方式與工具,但第一次感受到 Observability 的威力,是在星巴哥技術週刊中看到了 Grafana 的 Webinar Getting started with Grafana dashboard design(相同主題的 Webinar 會定期重講,當時觀看的版本已經下架,此為相同主題的 Webinar)。主要講解如何設計 Dashboard,在 QA 時展示了如何利用 Metrics 鎖定時間區段,再同時查詢相同時間區段的 Logs。當下被這種操作方式震驚到,原來還可以把 Metrics 與 Logs 這樣結合應用!震驚完後,就是想著我也好想要有這種工具。
一陣東翻西找後,在 Grafana 的 Blog 找到了一篇描述如何讓 Metrics、Logs、Traces 交互應用的文章。開篇就提到了 Observability,這也是我第一次接觸這個詞。接下來,就開始一頭栽入 Observability 的世界,嘗試達到 Grafana 提出的交互應用效果。當時並沒有太多簡單易懂的 Observability Demo 專案,只能靠自己不停摸索。跌跌撞撞後,終於拼湊出了使用 Python FastAPI 跟 Java Spring Boot 的兩個範例。
一開始的目的是想作為組織內的 POC 推廣看看,看有沒有機會導入。後來想說既然都做了,不如把 Readme 補一補,放到 GitHub 上讓有需要的人也可以參考,今年年中還剛好遇到 Grafana 10 週年舉辦 Dashboard 票選活動 Golden Grot,就把 Demo Project 中的 Dashboard 拿去投稿。沒想到入選 Final List,雖然最後只得到了第五名,但也因此有機會參加 Grafana Office Hours 分享 Project,對談了一小時的英文,也算是解鎖了一個小小的成就。
這一兩年 Observability 開始變得非常熱門,搭配著熱潮,在組織內也徵求到了一些想要嘗試的同仁。為了有效推廣 Observability,我也負責舉辦了多場的 Workshop 與分享,每一次的準備與分享都在審視自己對於概念以及工具是否真的清楚了解。所以,想藉著這次的鐵人賽,試著再好好介紹與研究正在使用的工具,也多了解一些其他不同的選項,開拓視野,希望能對 Observability 有更深入的了解。
系列文章分為兩種類型:
為了簡化 Lab 環境,本系列範例主要使用 Container 搭配 Docker Compose,避免在接觸 Observability 前就先被 Kubernetes 墊高門檻。畢竟,Observability 不是只能專用於 Kubernetes,這些概念與工具同樣能應用於大型機台上的單體式服務。若能透過 Observability 幫祖傳系統(Legacy System)提高穩定性,這樣幫老兵插管續命也算是功德一件。
為切合時光之鏡的主題,部分章節也會佐以概念跟工具的歷史故事,讓大家可以了解他們被設計出來的時代背景。
所有範例程式碼將會放置於 https://github.com/blueswen/observability-ironman30-lab 上供參考與使用。
文章內容受限於經驗與環境,如果有任何錯誤與建議都歡迎交流和指教,希望能夠在無止境的技術路上幫助有需要的人。
期待與各位一同探索 Observability 的無窮樂趣!